home *** CD-ROM | disk | FTP | other *** search
/ Aminet 39 / Aminet 39 (2000)(Schatztruhe)[!][Oct 2000].iso / Aminet / biz / swood / FW_AllInOne.lha / Makros / TabSchrift.long < prev    next >
Text File  |  1998-01-17  |  8KB  |  282 lines

  1. /********************************************
  2.  * Schrift einer Zelle für FW5+             *
  3.  * $VER: 1.0  © Heiko Schröder  (09.01.98)  *
  4.  ********************************************/
  5.  
  6. Parse ARG FW
  7.  
  8. if ~show('L',"rexxreqtools.library") then
  9.    if ~addlib('rexxreqtools.library',0,-30,0) then do
  10.       'ShowMessage 1 1 "Fehler...." "Benötige Libs:rexxreqtools.library" " A B B R U C H ! !" "Okay" "" ""'
  11.       exit
  12.    end
  13. IF ~show('L','tritonrexx.library') then
  14.    IF ~ADDLIB('tritonrexx.library',10,-30,0) THEN DO
  15.       'ShowMessage 2 1 "Fehler...." "Benötige Libs:tritonrexx.library" "" "Abbruch" "" ""'
  16.       exit
  17.    END
  18.  
  19. R='0A'X
  20.  
  21. If FW='' then do
  22.    Address='FinalW'
  23.    Options results
  24.  
  25.    STATUS PORTNAME
  26.    FW=result
  27. End
  28.    address(FW)
  29.  
  30. SIGNAL ON SYNTAX
  31.  
  32. address "REXX"
  33. If open('Hilfe',"S:FW_Paket.prefs","R") then do
  34.    HilfeVerz=readln('Hilfe')
  35.    Call Close('Hilfe')
  36. End
  37. else HilfeVerz=''
  38.  
  39. If open('pref','S:FW_TabSchrift.prefs','R')~=0 then do
  40.    fo=readln('pref')
  41.    si=readln('pref')
  42.    ausrichtung=readln('pref')
  43.    Call close('pref')
  44. END
  45. else do
  46.    fo="SoftSans"; si=12; ausrichtung=1
  47. END
  48. pos = max(index(fo,':'),lastpos('/',fo))
  49. If pos~=0 then fond=Delstr(fo,1,pos) 
  50.    else fond=fo
  51.  
  52. ausrichtung.0 = 5
  53. ausrichtung.1 = '  -----'
  54. ausrichtung.2 = '  links'
  55. ausrichtung.3 = 'zentriert'
  56. ausrichtung.4 = ' rechts'
  57. ausrichtung.5 = 'Blocksatz'
  58.  
  59. apptags =      'TRCA_Name     TabSchrift',
  60.                'TRCA_LongName "Schrift einer Tabelle"',
  61.                'TRCA_Info     "Makro für Finalwriter"',
  62.                'TRCA_Version  "1.0 registered"',
  63.                'TRCA_Release  "3"',
  64.                'TRCA_Date     "09.01.98"',
  65.                'TAG_END'
  66.  
  67. windowtags = WindowID(1),
  68.              WindowPosition('TRWP_CENTERDISPLAY'),
  69.              WindowFlags('TRWF_NOMINTEXTWIDTH'),
  70.              PubScreenName('FinalWriterPubScreen'),
  71.              WindowTitle('Tabellenschrift'),
  72.              BeginMenu('Projekt'),
  73.                 MenuItem('Q_Verlassen',104),
  74.              BeginMenu('?'),
  75.                 MenuItem('?_Info',101),
  76.                 MenuItem('H_Hilfe',103),
  77.              'HorizGroupAC',
  78.                 'SpaceS',
  79.                 'VertGroupA SpaceS',
  80.                    'HorizGroupAC',
  81.                       TextID('S_chriftart:',1),
  82.                       'SpaceS',
  83.                       GetEntryButton(1),
  84.                       StringGadget(fond,2),
  85.                    'EndGroup',
  86.                    'HorizGroupAC',
  87.                       TextID('Schrift_größe:',3),
  88.                       'SpaceS',
  89.                       StringGadget(si,3),
  90.                    'EndGroup',
  91.                    'HorizGroupAC',
  92.                       TextID('Aus_richtung:',4),
  93.                       'SpaceS',
  94.                       CycleGadget('ausrichtung',ausrichtung-1,4) 'TRAT_Flags TRCY_RIGHTLABELS',
  95.                    'EndGroup',
  96.                    'SpaceS',
  97.                    'HorizSeparator',
  98.                    'SpaceS',
  99.                    'HorizGroupEC',
  100.                       Button('_Anwenden',10),
  101.                       'SpaceS',
  102.                       Button('Ab_bruch',20),
  103.                    'EndGroup SpaceS',
  104.                 'EndGroup SpaceS',
  105.              'EndGroup SpaceS',
  106.           'EndProject'
  107.    app = TR_CREATEAPP('TRCA_Name TabSchrift')
  108. IF app ~= '00000000'x THEN DO
  109.    window = TR_OPENPROJECT(app,windowtags)
  110.    IF window ~= '00000000'x THEN DO
  111.       ende = 0
  112.  
  113.       DO WHILE ~ende
  114.          CALL TR_WAIT(app,'')
  115.  
  116.          DO WHILE TR_HANDLEMSG(app,'event')
  117.             IF event.trm_class = 'TRMS_CLOSEWINDOW' THEN ende=1
  118.  
  119.             IF event.trm_class = 'TRMS_NEWVALUE' THEN DO
  120.                SELECT
  121.                   WHEN event.trm_id = 4 THEN ausrichtung=event.trm_data+1
  122.  
  123.                   OTHERWISE NOP
  124.                END
  125.             END
  126.  
  127.             IF event.trm_class = 'TRMS_ACTION' THEN DO
  128.                SELECT
  129.                   WHEN event.trm_id = 1 THEN Do                /*Schriftart*/
  130.                      fond=rtfilerequest("FWFonts/SWOLFonts",,"Font auswählen...",,"rt_pubscrname=FinalWriterPubScreen")
  131.                      if fond~='' then do
  132.                         fo=fond
  133.                         pos = max(index(fond,':'),lastpos('/',fond))
  134.                         If pos~=0 then fond=Delstr(fond,1,pos)
  135.                         CALL TR_SETATTRIBUTE(window,2,'TROB_String',fond)
  136.                      End
  137.                   END
  138.  
  139.                   WHEN event.trm_id = 10 THEN Do               /*okay*/
  140.                      Call Auslesen
  141.                      if okay=1 then do
  142.                         Call program
  143.                         address "REXX"
  144.                         Call Open("prefs","s:FW_TabSchrift.prefs","W")
  145.                         Writeln('prefs',fo)
  146.                         Writeln('prefs',si)
  147.                         Writeln('prefs',ausrichtung)
  148.                         Call Close("prefs")
  149.                      End
  150.                   END
  151.  
  152.                   WHEN event.trm_id = 20 THEN ende=1            /*Abbrechen*/
  153.  
  154.                   WHEN event.trm_id = 101 THEN Call rtezrequest("Aus dem Makro-Paket:"||R||R||"Tabellenschrift V0.2beta für FW"||R||"© 1998 Heiko Schröder","Danke für Ihre Registrierung.","Info","rt_pubscrname=FinalWriterPubScreen")
  155.                   WHEN event.trm_id = 103 THEN address command "run Multiview PUBSCREEN=FinalWriterPubScreen "||d2c(34)||HilfeVerz||"TabSchrift.guide"||d2c(34)
  156.                   WHEN event.trm_id = 104 THEN ende=1
  157.                   OTHERWISE NOP
  158.                END
  159.             END
  160.          END
  161.       END
  162.       CALL TR_CLOSEPROJECT(window)
  163.    END
  164.    CALL TR_DELETEAPP(app)
  165. END
  166. ELSE
  167.    CALL quit('Kann das Fenster nicht öffnen',10)
  168.  
  169. Exit
  170.  
  171. Auslesen:
  172.    okay=0
  173.  
  174.    xy = TR_GETATTRIBUTE(window,2,'TROB_String')
  175.    If xy='' then do
  176.       fo=''; fond=''
  177.    End
  178.  
  179.    si = TR_GETATTRIBUTE(window,3,'TROB_String')
  180.    Select
  181.       When si='' then NOP
  182.  
  183.       When Datatype(si,'W')=0 then do
  184.          x=rtezrequest("Die SCHRIFTGRÖßE bitte ganzzahlig angeben!","_Achso","Eingabe-Fehler","rt_pubscrname=FinalWriterPubScreen")
  185.          Call TR_SendMessage(window,7,'TROM_ACTIVATE',0)
  186.          return
  187.       end
  188.  
  189.       Otherwise do
  190.          If si<4 then si=4
  191.          If si>360 then si=360
  192.       End
  193.  
  194.    End
  195.    okay=1
  196. Return
  197.  
  198. Program:
  199. Call rtezrequest("Cursor in die erste Zelle stellen.","_Getan","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  200.  
  201. address(FW)
  202. TableGetActiveCell
  203. If Words(result)=2 then do
  204.    Anfx=Word(result,1)
  205.    Anfy=Word(result,2)
  206. end
  207. else do
  208.    'ShowMessage 1 0 "Fehler..." "" "" "Ende" "" ""'
  209.    Return
  210. End
  211.  
  212. Call rtezrequest("Cursor in die letzte Zelle stellen.","_Getan","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  213.  
  214. TableGetActiveCell
  215. If Words(result)=2 then do
  216.    Endx=Word(result,1)
  217.    Endy=Word(result,2)
  218. end
  219. else do
  220.    'ShowMessage 1 0 "Fehler..." "" "" "Ende" "" ""'
  221.    Return
  222. End
  223. If Anfx>Endx then do
  224.    help=Anfx; Anfx=Endx; Endx=help
  225. End
  226. If Anfy>Endy then do
  227.    help=Anfy; Anfy=Endy; Endy=help
  228. End
  229.  
  230. Do x=Anfx to Endx
  231.    Do y=Anfy to Endy
  232.  
  233.       TableSetActiveCell x y
  234.  
  235.       SelectAll
  236.       If fo~='' then Font fo
  237.       If si~='' then FontSize si
  238.  
  239.       Select
  240.          When ausrichtung=2 then Justify Left
  241.          When ausrichtung=3 then Justify Center
  242.          When ausrichtung=4 then Justify Right
  243.          When ausrichtung=5 then Justify Full
  244.          otherwise NOP
  245.       End
  246.    End
  247. End
  248. Redraw
  249. Return
  250.  
  251. /*******************************************************************************
  252. ** Routine, die bei einer Unterbrechung des Scripts aufgerufen wird
  253. *******************************************************************************/
  254.  
  255. SYNTAX:
  256.    CALL quit('Fehler' rc 'in Zeile' sigl '-' ERRORTEXT(rc)||R||SOURCELINE(sigl)||R||'Bitte informieren Sie den Autor...',20)
  257.  
  258. /*******************************************************************************
  259. ** Script beenden
  260. *******************************************************************************/
  261.  
  262. quit:
  263.    PARSE ARG message,rcode
  264.  
  265.    IF app ~= '00000000'x THEN DO
  266.       IF message ~= '' THEN
  267.          ret=rtezrequest(message,"_Okay","ACHTUNG!","rt_pubscrname=FinalWriterPubScreen")
  268.  
  269.       CALL TR_DELETEAPP(app)
  270.    END
  271.    ELSE
  272.       IF message ~= '' THEN DO
  273.          SAY message
  274.          SAY
  275.          OPTIONS PROMPT 'Bitte <RETURN> drücken'
  276.          PULL taste
  277.       END
  278.  
  279.    address command "flushtrx all"
  280.    EXIT(rcode)
  281.  
  282.